package com.ruoyi.manage.service.impl;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.transaction.annotation.Transactional;
import com.ruoyi.manage.domain.MusicSongpages;
import com.ruoyi.manage.mapper.MusicSongsMapper;
import com.ruoyi.manage.domain.MusicSongs;
import com.ruoyi.manage.service.IMusicSongsService;

/**
 * 歌曲信息Service业务层处理
 *
 * @author xiaoshier
 * @date 2024-07-29
 */
@Service
public class MusicSongsServiceImpl implements IMusicSongsService
{
    @Autowired
    private MusicSongsMapper musicSongsMapper;

    /**
     * 查询歌曲信息
     *
     * @param musicSongsId 歌曲信息主键
     * @return 歌曲信息
     */
    @Override
    public MusicSongs selectMusicSongsByMusicSongsId(Long musicSongsId)
    {
        return musicSongsMapper.selectMusicSongsByMusicSongsId(musicSongsId);
    }

    /**
     * 查询歌曲详细信息
     *
     * @param musicSongsId 歌曲信息主键
     * @return 歌曲信息
     */
    @Override
    public List<MusicSongpages> selectMusicSongpage(Long musicSongsId)
    {
        return musicSongsMapper.selectMusicSongpage(musicSongsId);
    }
    @Override
    public List<MusicSongpages> selectMusicSongpages(Long[] musicSongsIds)
    {
        return musicSongsMapper.selectMusicSongpages(musicSongsIds);
    }

    /**
     * 查询歌曲信息列表
     *
     * @param musicSongs 歌曲信息
     * @return 歌曲信息
     */
    @Override
    public List<MusicSongs> selectMusicSongsList(MusicSongs musicSongs)
    {
        return musicSongsMapper.selectMusicSongsList(musicSongs);
    }

    /**
     * 新增歌曲信息
     *
     * @param musicSongs 歌曲信息
     * @return 结果
     */
    @Transactional
    @Override
    public int insertMusicSongs(MusicSongs musicSongs)
    {
        int rows = musicSongsMapper.insertMusicSongs(musicSongs);
        insertMusicSongpages(musicSongs);
        return rows;
    }

    /**
     * 修改歌曲信息
     *
     * @param musicSongs 歌曲信息
     * @return 结果
     */
    @Transactional
    @Override
    public int updateMusicSongs(MusicSongs musicSongs)
    {
        musicSongsMapper.deleteMusicSongpagesByMusicSongsId(musicSongs.getMusicSongsId());
        insertMusicSongpages(musicSongs);
        return musicSongsMapper.updateMusicSongs(musicSongs);
    }

    /**
     * 批量删除歌曲信息
     *
     * @param musicSongsIds 需要删除的歌曲信息主键
     * @return 结果
     */
    @Transactional
    @Override
    public int deleteMusicSongsByMusicSongsIds(Long[] musicSongsIds)
    {
        musicSongsMapper.deleteMusicSongpagesByMusicSongsIds(musicSongsIds);
        return musicSongsMapper.deleteMusicSongsByMusicSongsIds(musicSongsIds);
    }

    /**
     * 删除歌曲信息信息
     *
     * @param musicSongsId 歌曲信息主键
     * @return 结果
     */
    @Transactional
    @Override
    public int deleteMusicSongsByMusicSongsId(Long musicSongsId)
    {
        musicSongsMapper.deleteMusicSongpagesByMusicSongsId(musicSongsId);
        return musicSongsMapper.deleteMusicSongsByMusicSongsId(musicSongsId);
    }

    /**
     * 新增歌曲详细信息
     *
     * @param musicSongs 歌曲信息对象
     */
    public void insertMusicSongpages(MusicSongs musicSongs)
    {
        List<MusicSongpages> musicSongpagesList = musicSongs.getMusicSongpagesList();
        Long musicSongsId = musicSongs.getMusicSongsId();
        if (StringUtils.isNotNull(musicSongpagesList))
        {
            List<MusicSongpages> list = new ArrayList<MusicSongpages>();
            for (MusicSongpages musicSongpages : musicSongpagesList)
            {
                musicSongpages.setMusicSongsId(musicSongsId);
                list.add(musicSongpages);
            }
            if (list.size() > 0)
            {
                musicSongsMapper.batchMusicSongpages(list);
            }
        }
    }
}
